home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d21
/
cmd20.arc
/
CMD.DOC
next >
Wrap
Text File
|
1990-05-12
|
23KB
|
581 lines
┌───────┐┌───────┐┌───────┐┌───────┐
│ ┌─────┘│ ┌───┐ ││ ┌┐ ┌┐ ││ │
│ │ │ │ │ ││ ││ ││ ││ │ Goethestrasse 20
│ │ │ │ │ ││ │└─┘│ ││ ┌─────┘ D-6000 Frankfurt/Main1
│ └─────┐│ └───┘ ││ │ │ ││ │ Phone: 49-69-289403
├───┐┌──┤│ ││ ││ └─────┐┌──────┐ Fax : 49-69-288777
└┐ ┌┘│ ││ ┌─────┘│ ┌───┐ ││ ┌┐ ┌┐ ││ │ Tlx : 4170614bcg d
│ │ │ ││ │ │ │ │ ││ ││ ││ ││ │ Data : 49-69-634588 8N1
└─┘ └──┘│ │ │ │ │ ││ │└─┘│ ││ ┌────┘
│ └─────┐│ └───┘ ││ │ │ ││ │ Fido-Net: 2:247/14
└───────┘└───────┘└─┘ └─┘└─┘ MagicNet: EIS
EuroMail: 100/100:100
COMP-TO-COMP: We get computers together!
Comp-TO-Comp is a company, which is specialized in computer-communications,
mailbox-systems and data-security. We connect computers together, offline
and/or online. We c heck data-systems and networks for possible security-
holes, are experienced in MS/PC-DOS, UNIX, VM, MVS and VMS. If you are
interested in saving money and time, draw us a line. We would be very
appreciated to send you more information about us, our work and our clients.
We started the EUROMAIL (r) systems, which provide an easy to handle data-
communication service. EUROMAIL (r) is a commercial and private offline
network, compatible with Fido. If you want to join EURONET (r), you are
welcome. Contact us and we will show you ways, how to have fun and make
money with your BBS.
Come on - join the team!
WHAT IS CMD?
============
CMD is a powerfull tool, which gives you the capability to open, close or
interrupt any DesqView-task. It will also manage inter-task-communication,
you are able to use mailboxes, connect system-keyboard to any task (even
if its in background), suspend and release tasks or display information
about running tasks or your available memory. Your are able to control
DesqView from batchfiles or from remote.
CMD is not for beginners. It needs a little bit of experience and I don't
like to explain, what PIF-FILES are, or how to start a learn-script. CMD
has o lot of possibilities. On our system, CMD is a very useful tool. Par
example: CMD starts unpacking received mail, after polling to our fido and
magic-net server. The bbs is fast online again and all other stuff is running
in background. With CMD, you will be able to control your system from remote
and to start, stop and interrupt your tasks and applications running in some
tasks from the prompt or from batchfiles. You need a little phantasy to
figure out, how big the new possibilities are, if you use cmd.
CMD is not and never has been public-domain. It follows the shareware rules
what means, you can copy CMD, put it in your bbs or use it for your needs,
as long as you don't try to make money with it and all files, you`ve re-
ceived with your cmd.zip package will remain unchanged.
THIS I AN UNREGISTRED VERSION OF CMD.
Of course, the registred version of CMD will not be shareware any longer.
The registred versions will have a serial-number which will be unique.
Please check if the following files are included in your CMD.ZIP package:
register.frm.............Please use that form if you`de like to register
cmd.doc..................This information-document
cmd.exe..................The main-programm
cmd.hlp..................CMD help
wmessage.exe.............A supporting programm
sh-pif.dvp...............Pif-file for CMD -SH
wm-pif.dvp...............Pif-file for CMD -WWI
Registered users will receive in addition:
source.doc...............Some examples how to use desqview and
CMD-funtions in self-written programms (TURBO-C,
TURBO-BASIC, ASM)
HOW TO INSTALL CMD?
====================
CMD is easy to install. Just copy all the included files to your DesqView
directory and append the following two lines to your autoexec.bat:
set DVPATH=x:\yyyyyy Path, where you've got DesqView installed,
set RAMDISK=z: CMD will install its system-files on this
drive. We recommend a ramdisk, but any
any other drive will do it (slower....).
SOME DETAILS:
=============
If you create a new entry into your DesqView 'OPEN WINDOW' list, you have
to specify a two-key-name (KEYS TO USE ON OPEN MENUE). This "short-name"
is also the identifier for cmd. You can deal with any task by specifying
it with its two-key-name.
Example:
CMD -O BD.........will start "Big Dos" and inlist it into tasktable
CMD -C BD.........will close "BIG DOS" again.
CMD -C $XXXXXXXX..will close a task by calling it with its ID.
CMD -C $ca0f0000..will close a task with the ID CA0F0000 as shown
in the tasktable.
THE ONLY THINGS, YOU HAVE TO TAKE CARE OF, ARE:
================================================
If you will open a task with DesqViews "OPEN A WINDOW", it will not be
available for CMD (exept -shut or -f option). If you have a task in-
listed into tasktable, do not close it with "EXIT" or DesqViews "CLOSE
A WINDOW". Most CMD-commands will crash your system, if they try to
acces to a closed task which is still inlisted in the tasktable. Try
to live without using the -start option. It's for emergency only, be-
cause it uses a predifined PIF-File which not allways fits its needs.
STARTING A TASK:
================
-o..............Open a predifined task and inlist it into tasktable
-ob.............Open a predifined task in background and inlist it
into tasktable
-oo.............Open a predifined task, even if it is allready running. This
will overtype the first task-entry in the tasktable.
-f XX...........Force current task to be inlisted into tasktable as XX.
-start XXX.EXE..Start any program and inlist it into tasktable with its
first two bytes of its name.
-obs XX.........Open the task XX in background and stop it, while it is
in background. As soon as it is switched into foreground,
it will continue to run. This command was specailly created
for Earle Robinson, who gave me a lot of good ideas. Thanks.
EXAMPLES:
cmd -o bd.......This will open Desq-Views "Big DOS" in foreground.
cmd -ob bd......Starts task "Big Dos" but it will run in background.
Any task will only be able to be started once. If you want to start the
same program multiple times, use
cmd -oo XX......This will start a program XX, even if it is allready
inlisted into the tasktable.
If you want to start-up a task with DesqViews "Skript" function, you
would get a problem, because this task would not be available for cmd.
That's, where you use the -f option.
Example:
You want to start a DOS-partition, every time, you bring-up DesqView.
Now, you've got two possibilities to handle that. Create a skript which
will point to a batch-file. This batch-file should look like one of
these:
1)
@echo off
cmd -f XX.............This will force the current window to be inlisted
into the tasktable (change XX to the desired name)
2)
@echo off
cmd -o bd.............Open a new task BD (for BigDos)
cmd shut..............and close this task.
CLOSING A TASK:
===============
-c XX...........Close a task, which is inlisted in the tasktable
-shut...........Close current task, the tasktable will not be changed
Examples:
cmd -c bd.......Will close the task "BD" if its inlisted in the tasktable
cmd -shut.......This command will "shut-down" the current task, even if
it`s not inlisted into the tasktable. If it is inlisted,
it will remain in the tasktable. Watch out, if you try
to acces an closed but inlisted task, it will crash your
system.
INTERRUPT A TASK:
=================
-sp XX..........Suspend an inlisted task and hide its window
-rl XX..........Release a suspended task
-gb XX..........Put task XX into background
-gf XX..........Put task XX into foreground
Examples:
This commands are very easy to handle. Just change XX to the desired task-
name you`d like to interrupt. Suspending a task means, that it will remain
in your system-memory but won't run (and so, will not use any time-slices).
A SUSPENDED TASK IS NOT AVAILABLE FOR ANY OTHER CMD COMMAND. IF YOU WANT
TO HAVE ACCES TO A SUSPENDED TASK, YOU HAVE TO RELEASE IT FIRST!
INTER-TASK COMMUNICATION:
=========================
-sm XX..........Send a one line message to task XX.
-rm XX..........Read message, if available
-mm.............Check currents task mailbox
-wm.............Wait for a message on current task
-cm XX..........Check mailbox from task XX
-kb XX..........Connect system-keyboard to task XX [NEW]
-wkb XX YYYYY...Send a one line message to keyboard
of task XX [NEW]
-so XX YYYY.....Send an order to to task XX (mostly SH)
Examples:
cmd -sm bd Hello That command will send the message HELLO to the
task BD. As long as BD will not check it`s mail-
box, the message will remain there.
cmd -rm Check currents task mailbox and display a message,
if there is a message waiting.
cmd -mm Display numbers of waiting messages on current task.
cmd -wm Wait, until there will be a message to display. Be
careful with this option. It will not return this
task until it has received a message.
cmd -cm XX Check XX's mailbox and display number of waiting
messages.
cmd -kb XX This will connect your system-keyboard to task XX. That
means, every keystroke will be put into tasks XX keyboard
buffer, even if task xx is in the background.
cmd -wkb XX This is a powerful option. It will give you the capability
to send any message direct to task XX keyboard buffer.
cmd -wkb XX dir/w ^13 will put the 'dir/w' command direct into task XX
keyboard buffer. If task XX is on the prompt, it
will start displaying the directory - but you might
not see it - if the task is in background. Use the
'^' for storing an DEC ASCII into the keyboard buffer,
^13 means RETURN, ^27 would be ESCAPE.
ALERTS:
=======
-wwc YYYYYYY....Open a window in foreground, display
message YYYYYYY, wait for a few seconds
and close it again. [NEW]
-wwk YYYYYYY....Like the above, but the window will not
be closed. [NEW]
-wwi YYYYYYY....Open a window in foreground, display
message YYYYYY, it will be closed by
itself after 10 seconds or hitting Escape [NEW]
-beep XXX YY....Beep on a frequency of XX Hz for yy seconds [NEW]
Examples:
cmd -wwc Hello, Iam ready This will pop-up an window in foreground,
display "Hello, Iam ready" and will close
after a short while. The sending task will
wait, until the window has been closed.
cmd -wwk Hello, Iam ready This will do the same like above. But the
message window will not be closed. You are
not able to close that window again.
cmd -wwi Hello, Iam ready This will start a task, send a message to
the new tasks mailbox and will continue its
work. The new Task will pop-up a window in
foreground, will read the message from its
mailbox and display it for about 15 seconds.
By pressing ESCAPE you are able to close
that window immedately.
cmd -beep 1000 2 Beep two seconds on a frequency of 1000 Hz
INFORMATION:
============
-t..............Show table of inlisted tasks
-tt.............Like the above, but display additional
information
-m..............Show memory-map
-?..............Show CMDs installation paths
-who............Display name of current task
-who XX.........Display name of task XX
-id XX.........Display taskid of task xx
Examples:
cmd -t will display a tasktable and uses standart output (you`re able
to redirect it into a file):
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
ID KY DATE TIME STATUS V NAME
0 M1 9.05.90 18.27 ACTIVE 0 V ?????????
0 M3 9.05.90 18.27 ACTIVE 0 V ?????????
0 PW 9.05.90 18.27 ACTIVE 0 V ?????????
0 CC 11.05.90 12.39 *WAIT* 0 V ?????????
0 M2 11.05.90 11.52 ACTIVE 0 V ?????????
This "small-version" of a list tasktable order is useful, if you're not
sure, that everything is inlisted. It will just display the contains of
its tasktable and will not go into DesqViews environment to get more
information about the displayed tasks.
cmd -tt will display a tasktable with additional information:
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
ID KY DATE TIME STATUS V NAME
C8EA0000 M1 9.05.90 18.27 ACTIVE 0 V 6312083 (1)
C93C0000 M3 9.05.90 18.27 ACTIVE 0 V 6312934
C89C0000 PW 9.05.90 18.27 ACTIVE 0 V power
C9870000 CC 11.05.90 12.39 *WAIT* 0 V * CONSOLE
CA1F0000 M2 11.05.90 11.52 ACTIVE 0 V 634588 (2)
The '*' will show the task, you`re working on.
cmd -m will display a map of your available memory:
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
AVAILABLE MEMORY: TOTAL AVAILABEL LARGEST
Conventional Memory (KBytes): 576 149 148
Expanded Memory (Kbytes): 3264 672 560
Common Memory (Bytes) : 61440 52604 52506
Task-ID: (4)
With the other arguments, you are able to ask for names:
cmd -who
CMD: This is power
cmd -who pw
CMD: Name of task 'pw' is power
cmd -id pw
CMD: ID of task 'pw' is C0EA0000
OTHERS:
=======
-ct.............Erase tasktable
-bstp XX........Stop task, if it is in background
-brun XX........Will enable the "running in background"
-s ZZZ..........Sleep next ZZZ/100 seconds
-nm XX YYYY.....Give XXs window the name YYYYYY
-sh.............Go into shell-mode and wait for orders
-rem XX.........Remove task-table entry XX from tasktable
Be careful with the -ct option. It will clear youre tasktable it will make
all tasks unavailable for CMD.
A special thing we have to talk about ist the -sh option. This option puts
CMD in shell-mode. It gives you a prompt and you will be able to work with
it like you normally would do it. This task but will also check its mailbox
everytime, it is waiting on a DOS-prompt. That gives you the capability to
send mail and/or orders to that task (by using -sm and -so argument). If
you send an order to this task (its name is SH for SHELL), it will start
working.
Example:
This is your current tasktable.
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
ID KY DATE TIME STATUS V NAME
C8EA0000 M1 9.05.90 18.27 ACTIVE 0 V 6312083 (1)
C93C0000 M3 9.05.90 18.27 ACTIVE 0 V 6312934
C89C0000 PW 9.05.90 18.27 *WAIT* 0 V power
C9870000 CC 11.05.90 12.39 ACTIVE 0 V * CONSOLE
CA1F0000 M2 11.05.90 11.52 ACTIVE 0 V 634588 (2)
CA3C0000 SH 11.05.90 11.58 ACTIVE 0 V Shell
Now you`d like to pack a file named test.doc
You type into the keyboard:
cmd -so sh pkzip test.doc
This will send an order to shell and shell will start doing this job.
To control, if shell is ready, you can do the following:
cmd -so sh cmd -sm cc Iam ready
========== -------------------
! !
! +----------------- This is the job, you want shell
! do, in this case, you want shell
! to send a mail to cc (what is
! console, our current task)
!
+-------------------------------- This is the send order command
By checking your mailbox (with cmd -mm) you will find out, if sh is working
or not. Because as long as shell is doing a job, it will not be able to read
its mailbox. But as soon as its finished, it receives your second order and
will send this mail back to your task immediately.
That means:
You are able to check your mailbox (if its empty, sh is still working) or
you can check SH's mailbox (as long as theres a message waiting, shell is
working)
SPECIALS
========
You are able to command a task, even if it would be unavailable from CMD.
Example:
This is the current tasktable:
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
ID KY DATE TIME STATUS V NAME
C8EA0000 M1 9.05.90 18.27 ACTIVE 0 V 6312083 (1)
C93C0000 M3 9.05.90 18.27 ACTIVE 0 V 6312934
C89C0000 PW 9.05.90 18.27 ACTIVE 0 V power
C9870000 CC 11.05.90 12.39 ACTIVE 0 V * CONSOLE
CA1F0000 M2 11.05.90 11.52 ACTIVE 0 V 634588 (2)
You type:
>cmd -sp m1
and suspend the task m1. The Tasktable would now look like this:
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
ID KY DATE TIME STATUS V NAME
C8EA0000 M1 9.05.90 18.27 *WAIT* 0 V 6312083 (1)
C93C0000 M3 9.05.90 18.27 ACTIVE 0 V 6312934
C89C0000 PW 9.05.90 18.27 ACTIVE 0 V power
C9870000 CC 11.05.90 12.39 ACTIVE 0 V * CONSOLE
CA1F0000 M2 11.05.90 11.52 ACTIVE 0 V 634588 (2)
Now you are able to start a second task `M1',
>cmd -o m1
and now, the tasktable looks this way:
CMD (c) 1990 Comp-2-Comp All rights reserved (SN 999 Betatest)
ID KY DATE TIME STATUS V NAME
C8EA0000 M1 9.05.90 18.27 *WAIT* 0 V 6312083 (1)
C93C0000 M3 9.05.90 18.27 ACTIVE 0 V 6312934
C89C0000 PW 9.05.90 18.27 ACTIVE 0 V power
C9870000 CC 11.05.90 12.39 ACTIVE 0 V * CONSOLE
CA1F0000 M2 11.05.90 11.52 ACTIVE 0 V 634588 (2)
CA3C0000 M1 11.05.90 13.01 ACTIVE 0 V 6312083 (1)
Now we have two tasks with the same name (M1) inlisted into the tasktable.
If you would like to close one of the tasks, you would not be able to spe-
cify, which of them you would like to have acces to. Now you have to name
it direct, by using the ID of a task. Be careful with this, it will crash
your system if you would type a wrong (unavailable) ID.
>cmd -c $c8ea0000 will close the first M1-task.
If you`de like to erase one of the table entrys (par example, to make that
task unavailable for cmd), type
>cmd -rem XX if you are able to name it, or:
>cmd -rem $yyyyyyy if you want to use the tasks HEX-ID
DESQVIEWS MENU-OPTIONS:
=======================
-dvm XX nm......... will prevent DV's main-menue to pop-up
-dvm XX nq..........makes is unpossible to quit Desqview
-dvm XX nc..........will prevent this task to be closed by DV's menu-options
-dvm XX no..........makes DVs "Open-Menue" unavailable
-dvm XX ok..........makes everything available
ERORRLEVELS
===========
For controlling CMD from batchfiles, CMD will return different errorlevels
and you will be able to check them.
The errorlevels are:
0....................everything is ok
1....................no need to start DV-interface
2....................DV not active
3....................not able to start the desired task
4....................not able to close the desired task
5....................tasktable not found
6....................task is allready suspended
7....................task is not suspended
8....................dropped from cmd-shell
9....................missing name of task to be started
10...................task is allready running
11...................couldn't start task
12...................couldn't find task
In difference, CMD will return the number of waiting messages as an error-
level. That means, that if you check the currents task mailbox (with -mm)
or the mailboxes from different tasks (with -cm XX), CMD will return
the numbers of waiting messages to the errorlevel.
SOME WORKING EXAMPLES:
======================
Start-up your system automaticly:
Create a DesqViews learn script and let it start a batch file, we will call
it now sbatch.bat.
sbatch.bat could look like that:
@echo off
rem Start-Up batch-file for DesqView and my applications
cmd -ob prog1 (your first programm)
cmd -s 500 (give Desqview a little time to open up the first task)
cmd -ob prog2 (your second programm)
cmd -s 500
cmd -ob prog3
cmd -s 500
cmd -wwc All tasks are up and running
cmd -shut
Now, you got all your running tasks inlisted into the tasktable and
available for cmd.
WHERE`s THE DIFFERENCE BETWEEN THE REGISTRED AND UNREGISTRED VERSION?
=============================================================================
The unregistred version will pop-up a window in the right upper edge everytime
you`re starting cmd. You are not able to close that window, because it is not
a task, it is just a window with nothing belonging to it. DesqView don't like
that and will crash after a cupple of cmd-calls. You are not able to work re-
liable with cmd as long as it is not registred. I am sorry to do it that way,
but I have had no response from the first release of CMD.
If you'd like to register CMD, please use "register.frm" and send it back to
me. I will return a disk with the registered version of cmd. The registred
Version will be without that window.
I would like to thank the following people:
Ralf Brown.....................who wrote the fantastic DV GLUE which is an
important part of CMD,
Juergen Schneider..............for giving me a lot of time and support,
Earle Robinson.................for spending a hell of money to call me long
distance and helping me by debugging and up-
dating.
And I would like to thank GOD, who made me able to programm this!